Conventional image processing typically requires significant processing power and substantial memory resources. In this regard, a captured image (e.g., an image frame) may include a large number of pixels, each of which may have many bits or bytes of associated data. As a result, large amounts of memory may be required to store the captured image, and operations may be required to be performed on all of the many pixels to process even a single captured image. These difficulties are compounded in realtime applications where a stream of images may need to be captured and processed without introducing significant latency or other delays.
Unfortunately, conventional frame based approaches to image processing are often problematic. For example, a powerful processor may be required to satisfactorily process an entire image. In addition, such a processor may rely on a centralized memory system to repeatedly read and write image data to a large memory block over a shared memory bus. Such approaches can lead to processing delays and bottlenecks in the use and operation of the processor and the memory system.